From 674485a138b5a20dcef1f6d321306289ef8a9f50 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Sat, 31 Dec 2011 22:17:25 +0100 Subject: [PATCH] styleproperties: Implement unsetting directly With subproperties, there's no need anymore for custom unset functions. --- gtk/gtkstyleproperties.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/gtk/gtkstyleproperties.c b/gtk/gtkstyleproperties.c index e1913a6dd3..9d26f3a117 100644 --- a/gtk/gtkstyleproperties.c +++ b/gtk/gtkstyleproperties.c @@ -886,10 +886,23 @@ gtk_style_properties_unset_property (GtkStyleProperties *props, g_warning ("Style property \"%s\" is not registered", property); return; } + if (_gtk_style_property_get_value_type (node) == G_TYPE_NONE) + { + g_warning ("Style property \"%s\" is not settable", property); + return; + } - if (node->unset_func) + if (GTK_IS_CSS_SHORTHAND_PROPERTY (node)) { - node->unset_func (props, state); + GtkCssShorthandProperty *shorthand = GTK_CSS_SHORTHAND_PROPERTY (node); + + for (pos = 0; pos < _gtk_css_shorthand_property_get_n_subproperties (shorthand); pos++) + { + GtkCssStyleProperty *sub = _gtk_css_shorthand_property_get_subproperty (shorthand, pos); + gtk_style_properties_unset_property (props, + _gtk_style_property_get_name (GTK_STYLE_PROPERTY (sub)), + state); + } return; } -- 2.30.2